package com.leyou.search.domain;

import lombok.Data;
import lombok.ToString;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import javax.persistence.Id;
import java.util.Map;
import java.util.Set;

@Data                                       //分片       副本
@Document(indexName = "goods",type = "docs",shards = 1,replicas = 1)
@ToString
public class Goods {

    @Id
    @Field(type = FieldType.Keyword)
    private Long id; //spuid
    @Field(type = FieldType.Keyword,index = false)
    private String subTitle;//促销信息 在spu
    @Field(type = FieldType.Keyword,index = false)
    private String skus;//sku集合信息 里面有images,price,name,skuid
    @Field(type = FieldType.Text,analyzer = "ik_max_word")
    private String all;// 分词字段json格式 包括分类名称 品牌名称 商品名称
    @Field(type = FieldType.Text,analyzer = "ik_max_word")
    private String spuTitle; //spu name 搜索 高亮显示
    //以下字段都采用默认方式 都不分词但是索引
    private Long brandId;//品牌id
    private Long categoryId;//商品3级分类
    private Long createTime;//spu 创建时间
    private Set<Long> price;//价格
    //elasticSearch会对map对象中每一个字段进行索引，但是不分词，里面都是keyword关键字
    private Map<String, Object> specs;// 可搜索的规格参数，key是参数名，值是参数值
}
